package com.xhui.vimarket.common.service.impl;

import java.io.Serializable;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import com.xhui.vimarket.common.dao.Dao;
import com.xhui.vimarket.common.service.Manager;

/**
 * @版权：福富软件 版权所有 (c) 2007
 * @文件：com.xhui.crm.common.service.impl.BaseManager.java
 * @所含类：BaseManager
 * @author: wuq
 * @version: V1.0
 * @see:
 * @创建日期：2007-9-14
 * @功能说明：
 * @修改记录： =============================================================<br>
 *        日期:2007-9-14 wuq 创建
 *        =============================================================<br>
 */
@Service
public class BaseManager implements Manager {
    /**
     * log Log.
     */
    protected final Log log = LogFactory.getLog(this.getClass());
    
    /**
     * dao Dao.
     */
    @Autowired
    @Qualifier("dao")
    protected Dao       dao = null;
    
    /**
     * @param dao
     *            dao
     * @author: wuq
     * @修改记录： ==============================================================<br>
     *        日期:2007-9-14 wuq 创建方法，并实现其功能
     *        ==============================================================<br>
     */
    public void setDao(final Dao dao) {
        this.dao = dao;
    }
    
    /**
     * @param vdao
     *            Dao
     * @author: wuq
     * @修改记录： ==============================================================<br>
     *        日期:2007-9-14 wuq 创建方法，并实现其功能
     *        ==============================================================<br>
     */
    public void personDao(final Dao vdao) {
        this.dao = vdao;
    }
    
    /**
     * @param clazz
     *            Class
     * @param id
     *            Serializable
     * @return Object
     * @author: wuq
     * @修改记录： ==============================================================<br>
     *        日期:2007-9-14 wuq 创建方法，并实现其功能
     *        ==============================================================<br>
     */
    public Object getObject(final Class clazz, final Serializable id) {
        return this.dao.getObject(clazz, id);
    }
    
    /**
     * @param clazz
     *            Class
     * @return List
     * @author: wuq
     * @修改记录： ==============================================================<br>
     *        日期:2007-9-14 wuq 创建方法，并实现其功能
     *        ==============================================================<br>
     */
    public List getObjects(final Class clazz) {
        return this.dao.getObjects(clazz, null);
    }
    
    /**
     * @param clazz
     *            Class
     * @param id
     *            Serializable
     * @author: wuq
     * @修改记录： ==============================================================<br>
     *        日期:2007-9-14 wuq 创建方法，并实现其功能
     *        ==============================================================<br>
     */
    public void removeObject(final Class clazz, final Serializable id) {
        this.dao.removeObject(clazz, id);
    }
    
    /**
     * @param o
     *            Object
     * @author: wuq
     * @修改记录： ==============================================================<br>
     *        日期:2007-9-14 wuq 创建方法，并实现其功能
     *        ==============================================================<br>
     */
    public void saveObject(final Object o) {
        this.dao.saveObject(o);
    }
}
